package com.china.cnlongdb.basic.utils;

import java.util.Random;

/**
 * 系统名称：RandomUtil.java
 * 模块名称：
 * 模块描述：随机数处理工具类
 * 功能列表：
 * 模块作者：ZOUYONG
 * 开发时间：2018年12月5日 下午9:42:37
 * 模块路径：com.china.cnlongdb.basic.utils.RandomUtil
 * 更新记录：
 */
public class RandomUtil {
	
	// 随机数格式
	private static String numberChar = "0123456789";
	
	/**
     * 获取当前事件Unxi 时间戳
     * @return
     */
    public static int getUnixTimeStamp() {
        long rest= System.currentTimeMillis()/100000L;
        return (int)rest;
    }

	/**
	 * 功能描述：根据系统时间获得指定位数的随机数
	 * 模块作者：zouyong-ocean 
	 * 开发时间：2015年9月2日 下午12:22:35
	 * 更新记录：
	 * 返回数据：String 获得的随机数
	 */
    public static String getRandom(int size) {
        StringBuffer str = new StringBuffer();	// 装载生成的随机数
        Random random = new Random();		// 调用种子生成随机数
        for (int i = 0; i < size; i++) {
        	str.append(numberChar.charAt(
        			random.nextInt(numberChar.length())));
        }
        return str.toString();
    }

	/**
	 * 功能描述：获取随机
	 * 模块作者：ZOUYONG
	 * 开发时间：2016年4月30日 下午2:40:11
	 * 更新记录：
	 * 返回数据：String
	 */
    public static String getRandomNumber(int length) {
    	StringBuffer val = new StringBuffer();
    	Random random = new Random();
    	for(int i = 0; i < length; i++) {
			val.append(String.valueOf(random.nextInt(10)));
    	}
    	return val.toString();
 	}
    
    /**
     * 功能描述：随机生成字符串
     * 模块作者：ZOUYONG
     * 开发时间：2016年4月27日 上午10:58:00
     * 更新记录：
     * 返回数据：String
     */
    public static String getRandomChar(int length) {
    	StringBuffer val = new StringBuffer();
    	Random random = new Random();
    	for(int i = 0; i < length; i++) {
    		// 取得大写字母还是小写字母
			int choice = random.nextInt(2) % 2 == 0 ? 65 : 97; 
			val.append((char) (choice + random.nextInt(26)));
    	}
    	return val.toString();
 	}
    
	/**
	 * 功能描述：生成随机数字和字母组合 length[生成随机数的长度]
	 * 模块作者：ZOUYONG
	 * 开发时间：2016年4月27日 上午11:05:22
	 * 更新记录：
	 * 返回数据：String
	 */
    public static String getCharAndNumr(int length) {
    	StringBuffer val = new StringBuffer();
    	Random random = new Random();
    	for(int i = 0; i < length; i++) {
    		// 输出字母还是数字
    		String charOrNum = random.nextInt(2) % 2 == 0 ? "char" : "num"; 
    		// 字符串
    		if ("char".equalsIgnoreCase(charOrNum)) {
    			// 取得大写字母还是小写字母
    			int choice = random.nextInt(2) % 2 == 0 ? 65 : 97; 
    			val.append((char) (choice + random.nextInt(26)));
    		}
    		// 数字
    		else if ("num".equalsIgnoreCase(charOrNum)) {
    			val.append(String.valueOf(random.nextInt(10)));
    		}
    	}
    	return val.toString();
 	}
    
    /**
     * 功能描述：获取指定范围内随机数
     * 模块作者：ZOUYONG
     * 开发时间：2016年6月2日 下午3:28:16
     * 更新记录：
     * 返回数据：int
     */
    public static int getRandomNumberInLen(int length) {

		Random ra =new Random();
		int number = ra.nextInt(length);
		if(number <= 0) {
			return getRandomNumberInLen(length);
		}
    	return number;
    }

    /**
     * 功能描述：生成0位数
     * 模块作者：ZOUYONG
     * 开发时间：2018年11月30日 下午9:07:12
     * 更新记录：
     * 返回数据：String
     */
	public static String generatorFileCount(int dataFileCount) {
		StringBuffer dataFileName = new StringBuffer();
		for(int i=String.valueOf(dataFileCount).length(); i<10; i++) {
			dataFileName.append("0");
		}
		return dataFileName.append(dataFileCount).toString();
	}
	
	public static void main(String[] args) {
		
		Random rand = new Random();
		System.out.println(rand.nextInt(1));
	}
	
}
